<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        li {
            list-style: none;
            line-height: 45px;
            border: 1px dashed #333;
            margin-top: 10px;
            text-indent: 10px;
        }
    </style>
</head>

<body>
    <div class="wrap">
        <button class="add">新增</button>
        <div class="list">
            <li>01</li>
            <li>02</li>
            <li>03</li>
            <li>04</li>
            <li>05</li>
            <li>06</li>
        </div>
    </div>
</body>
<script>
    // 传统的多元素绑定事件    缺点
    // 1.  每一个元素都绑定了事件,而事件执行的内容都是一样的  => 占内存
    // 2.  页面加载时现有的元素绑定事件, 未来生成元素(页面加载时 没有,后期通过其他手段生成)无法绑定事件

    // 点击li 返回内容和下标
    var add = document.getElementsByClassName("add")[0];
    var list = document.getElementsByClassName("list")[0];
    var liList = list.getElementsByTagName("li");

    add.onclick = function () {
        var li = document.createElement("li");
        li.innerText = "我是新增的li";
        list.appendChild(li);
        li.onclick = fn;
    }

    var fn = function () {
        var index = Array.from(liList).indexOf(this);
        console.log(this.textContent, index);
    }

    // 页面加载时 现有的元素绑定事件 (后期生成 没有) 
    for (var i = 0; i < liList.length; i++) {
        var li = liList[i];
        li.onclick = fn
    }



</script>

</html>